// 引入Node.js内置模块：http（创建服务）、fs（读取图片）、path（处理路径）
const http = require("http");
const fs = require("fs");
const path = require("path");

// 创建HTTP服务，监听8081端口
const server = http.createServer((req, res) => {
  // 仅处理根路径（localhost:8081/）的GET请求
  if (req.url === "/" && req.method === "GET") {
    try {
      // 1. 读取本地图片（需在根目录放置test.jpg，可替换为其他图片）
      const imgPath = path.join(__dirname, "test.jpg");
      const imgBuffer = fs.readFileSync(imgPath); // 读取图片为Buffer对象

      // 2. 将Buffer转为Base64编码（Data URI格式：）
      const imgBase64 = `data:image/jpeg;base64,${imgBuffer.toString("base64")}`;

      // 3. 构造响应的HTML内容（包含Base64图片）
      const html = `
        <!DOCTYPE html>
        <html lang="zh-CN">
        <head>
          <meta charset="UTF-8">
          <title>Buffer图片示例</title>
        </head>
        <body>
          <h1>深入浅出Node.js</h1>
          <p>作者：朴灵</p>
          <p>出版社：人民邮电出版社</p>
          <img src="${imgBase64}" alt="示例图片" style="width: 300px;">
        </body>
        </html>
      `;

      // 4. 发送HTTP响应（设置响应头为HTML类型）
      res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
      res.end(html);

    } catch (err) {
      // 若图片读取失败，返回错误信息
      res.writeHead(500, { "Content-Type": "text/plain; charset=utf-8" });
      res.end(`图片加载失败：${err.message}`);
    }
  } else {
    // 处理不存在的路径，返回404
    res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" });
    res.end("404 - 页面未找到");
  }
});

// 启动服务，监听8081端口
server.listen(8081, () => {
  console.log("服务已启动，可访问：http://localhost:8081");
});